package com.naiterui.ehp.bp.utils.payment.bo;

import java.io.Serializable;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 支付成功通知业务VO
 *
 * @author 王泽浩
 * @since 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@SuppressWarnings({"unused"})
public class NotifyBusinessPayBO implements Serializable {

    /**
     * 支付成功
     */
    public static final int PAY_SUCCESS = 0;

    /**
     * 支付失败
     */
    public static final int PAY_FAIL = 1;
    private static final long serialVersionUID = -7827889994192283650L;
    /**
     * <pre>
     * 字段名：用户标识
     * 变量名：userId
     * 是否必填：是
     * 类型：String(128)
     * 示例值：wxd930ea5d5a258f4f
     * 描述：用户在商户appid下的唯一标识
     * </pre>
     */
    private String userId;

    /**
     * <pre>
     * 字段名：订单金额
     * 变量名：totalFee
     * 是否必填：是
     * 类型：Int
     * 示例值：100
     * 描述：订单总金额，单位为分
     * </pre>
     */
    private Integer totalFee;

    /**
     * <pre>
     * 字段名：上游支付订单号
     * 变量名：channelTradeSN
     * 是否必填：是
     * 类型：String(32)
     * 示例值：1217752501201407033233368018
     * 描述：微信支付订单号
     * </pre>
     */
    private String channelTradeSn;
    @Deprecated
    private String channelTradeSN;

    /**
     * <pre>
     * 字段名：商户订单号
     * 变量名：orderSn
     * 是否必填：是
     * 类型：String(32)
     * 示例值：1212321211201407033568112322
     * 描述：商户系统的订单号，与请求一致。
     * </pre>
     */
    private String orderSn;

    /**
     * 订单类型
     */
    private Integer orderType;

    /**
     * 订单支付状态
     */
    @Deprecated
    private Integer status;

    /**
     * 订单状态
     */
    private Integer orderStatus;

    /**
     * 订单支付状态 成功0 失败 1
     */
    private Integer payStatus;

    /**
     * <pre>
     * 字段名：支付完成时间
     * 变量名：payTime
     * 是否必填：是
     * 类型：String(14)
     * 示例值：2014-10-30 13:35:25
     * 描述：支付完成时间，格式为yyyy-MM-dd HH:mm:ss，如2009年12月25日9点10分10秒表示为2009-12-25 09:10:10。其他详见时间规则
     * </pre>
     */
    private String payTime;

    /**
     * 支付流水号
     */
    private String tradeSn;

    /**
     * 这个字段为了兼容之前接口，是orderSn
     */
    @Deprecated
    private String tradeSN;

    /**
     * 渠道ID
     */
    private Long payChannelId;
    /**
     * 渠道名称
     */
    private String payChannelName;

    /**
     * 错误信息
     */
    private String errMsg;

}
